package com.yss.reportworld.domain.arrwrap;

import java.util.Date;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yss.common.core.annotation.ExcelValid;
import com.yss.common.core.utils.easyexecl.DateConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.stereotype.Component;

/**
 * 报表数据集对象 rw_db_tc_rep_dataset
 *
 * @author yss
 * @date 2023-07-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("rw_db_tc_rep_dataset")
@Component("TcRepDataset")
public class TcRepDataset extends Model<TcRepDataset> {

    /**
     * 流水号
     */
    @ExcelProperty("ID")
    @TableId("ID")
    private String id;

    /**
     * 编码
     */
    @ExcelProperty("DATASET_CODE")
    @TableField("DATASET_CODE")
    @ExcelValid(message = "【TC_REP_DATASET】【DATASET_CODE】不能为空")
    private String datasetCode;

    /**
     * 数据集名称
     */
    @ExcelProperty("DATASET_NAME")
    @TableField("DATASET_NAME")
    @ExcelValid(message = "【TC_REP_DATASET】【DATASET_NAME】不能为空")
    private String datasetName;

    /**
     * 数据集SQL
     */
    @ExcelProperty("DATASET_SQL")
    @TableField("DATASET_SQL")
    @ExcelValid(message = "【TC_REP_DATASET】【DATASET_SQL】不能为空")
    private String datasetSql;

    /**
     * 参数, 0代表生成,1代表组合,2代表明细
     */
    @ExcelProperty("DATASET_PARAM")
    @TableField("DATASET_PARAM")
    @ExcelValid(message = "【TC_REP_DATASET】【DATASET_PARAM】不能为空")
    private String datasetParam;

    /**
     * 数据库类型
     */
    @ExcelProperty("DB_TYPE")
    @TableField("DB_TYPE")
    private Long dbType;

    /**
     * 报表ID
     */
    @ExcelProperty("REPORT_ID")
    @TableField("REPORT_ID")
    @ExcelValid(message = "【TC_REP_DATASET】【REPORT_ID】不能为空")
    private String reportId;

    /**
     * 数据源
     */
    @ExcelProperty("DATA_SOURCE")
    @TableField("DATA_SOURCE")
    private Long dataSource;

    /**
     * 备注
     */
    @ExcelProperty("MEMO")
    @TableField("MEMO")
    private String memo;

    /**
     * 创建人
     */
    @ExcelProperty("CREATE_PRSN")
    @TableField("CREATE_PRSN")
    private String createPrsn;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "CREATE_TIME", converter = DateConverter.class)
    @TableField("CREATE_TIME")
    private Date createTime;
    /**
     * 修改人
     */
    @ExcelProperty("MDFY_PRSON")
    @TableField("MDFY_PRSON")
    private String mdfyPrson;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ExcelProperty(value = "MDFY_TIME", converter = DateConverter.class)
    @TableField("MDFY_TIME")
    private Date mdfyTime;

    /**
     * 启用禁用(A0000901:启用;A0000902:禁用)
     */
    @ExcelProperty("IS_ENABLE")
    @TableField("IS_ENABLE")
    @ExcelValid(message = "【TC_REP_DATASET】【IS_ENABLE】不能为空")
    private String isEnable;

    /**
     * 监管规则
     */
    @ExcelProperty("REGULATION_RULE")
    @TableField("REGULATION_RULE")
    @ExcelValid(message = "【TC_REP_DATASET】【REGULATION_RULE】不能为空")
    private String regulationRule;

    /**
     * 报送主体类型,字典值: A-基金公司/ B-基金公司资产管理子公司（境内）/ C-基金公司其他子公司（含境外）/ D-保险公司
     */
    @ExcelProperty("TRANS_TYPE")
    @TableField("TRANS_TYPE")
    @ExcelValid(message = "【TC_REP_DATASET】【TRANS_TYPE】不能为空")
    private String transType;

    /**
     * 中基协投资者类型
     */
    @ExcelProperty("ZJX_TZZLX")
    @TableField("ZJX_TZZLX")
    private String zjxTzzlx;

    /**
     * 中基协是否为电子签名
     */
    @ExcelProperty("ZJX_SFWDZQM")
    @TableField("ZJX_SFWDZQM")
    private String zjxSfwdzqm;

    /**
     * 中基协是否为管理人关联方
     */
    @ExcelProperty("ZJX_SFWGLRGLF")
    @TableField("ZJX_SFWGLRGLF")
    private String zjxSfwglrglf;

    /**
     * 数据库类型
     */
    @ExcelIgnore
    @TableField("RW_DB_DATABASE_TYPE")
    private String rwDbDatabaseType;

    /**
     * 数据编码
     */
    @ExcelIgnore
    @TableField("RW_DB_ID")
    private String rwDbId;
}
